package edu.yctc.delivery.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import edu.yctc.delivery.entity.DeliveryDO;

/**
 * deliveryDAO接口
 * 
 * @author 渠立庆
 */
@Mapper
public interface DeliveryDAO {

    /**
     * 插入
     * 
     * @param deliveryDO
     */
    public void insert(DeliveryDO deliveryDO);

    /**
     * 根据id删除
     * 
     * @param id
     */
    public void deleteById(long id);

    /**
     * 更新
     * 
     * @param deliveryDO
     */
    public void update(DeliveryDO deliveryDO);

    /**
     * 根据id获得DeliveryDO
     * 
     * @param id
     */
    public DeliveryDO getDeliveryDOById(long id);

    /**
     * 通过用户的id来获取List<DeliveryDO>集合
     * 
     * @param id
     * @return
     */
    public List<DeliveryDO> getDeliveryDOsByUserId(long id);

    /**
     * 获得所有DeliveryDO
     * 
     * @param
     */
    public List<DeliveryDO> getAllDeliveryDO();

    /**
     * 通过配送员id得到DeliveryDO
     * 
     * @param id
     */
    public List<DeliveryDO> getDeliveryByUserId(long userid);

    /**
     * 
     * 通过配送员的id删除配送单信息
     * 
     * @param userId
     */
    public void deleteByUserId(long userId);

    /**
     * 通过配送员的id和配送点的id获得单个订单的信息
     * 
     * @param userId
     * @param deliveryPointId
     * @return
     */
    public DeliveryDO getDeliveryDOByUserIdAndDeliveryPointId(long userId, long deliveryPointId);

    /**
     * 通过配送员的id和配送点的id删除单个订单的信息
     * 
     * @param userId
     * @param deliveryPointId
     */
    public void deleteByUserIdAndDeliveryPointId(long userId, long deliveryPointId);

}
